A driving force in the development of wireless/cellular communication networks and systems has been to provide increased network coverage and/or to support higher data rates. At the same time, the cost aspect of building and maintaining the system is of great importance and is expected to become even more so in the future. As data rates and/or communication distances are increased, the problem of increased battery consumption is another area of concern. Until recently, the main topology of wireless communication systems has been fairly unchanged, including the three existing generations of cellular networks. The topology of existing wireless communication systems is characterized by a cellular architecture that includes fixed radio base stations and mobile stations as the only transmitting and receiving entities in the networks typically involved in a communication session.
A technique for introducing macro-diversity in a received signal involves the use of relaying systems where information sent to an intended destination may be conveyed through various routes and combined at the destination. Each route may consist of one or more hops utilizing the relay nodes. In addition, the destination may receive the direct signal from the source. Cooperative relaying systems can be divided into numerous categories based on desired parameters. For instance, the way the signal is forwarded and encoded at the relay station can be classified into two categories: amplify-and-forward and decode-and-forward. In the amplify-and-forward case, the relays simply amplify and forward the received signal. In the decode-and-forward case, the relays demodulate and decode the signal prior to re-encoding and re-transmission.
Present day communication networks, described above, share the same fundamental principle of operation: the information or packet sent from a source to a destination is transported independently from other information sent from another source to the same destination. Routers, repeaters and relays simply forward the data to the destination. In contrast to those communication networks, network coding (NC) is a new area of networking, in which data is manipulated inside the network (e.g., at an intermediate node, N) to improve throughput, delay and robustness. In particular, NC allows instead the nodes to recombine several input packets into one or several output packets. At the intermediate node (referred to as the network coding node) some type of linear coding can be performed on the packets present at the network coding node, and the resulting encoded packet can be broadcast for different recipients simultaneously instead of transmitting each packet separately.
In wireless communications, network coding can be divided into two schemes: analog network coding and digital network coding. In analog network coding, coding may be performed at the signal level. This may consist of letting the analog signals add up in the air through simultaneous transmissions (i.e., by letting two signals interfere with each other intentionally). The coding (i.e., signal addition) may then occur at the intermediate relay node and both decode-and-forward and amplify-and-forward techniques may be employed in analog network coding. In digital network coding, coding may be performed at the packet level, with encoding being performed on the bits of the packets. The encoding may include XOR operations, or other types of bit operations, being performed on the bits of the packets. Digital network coding may be performed only with decode-and-forward relays, since the network coding node needs to possess decoding capabilities. When network coding is applied to a wireless relay network, a relay node may play the role of a network coding node.
As network coding combines the data of different user terminals together, this implies that the data of these users should be available at the node (i.e., the relay node, typically) over which network coding is performed. In a system in which more than one relay node is available per cell, the issue of relay node selection arises. When selecting a relay node, it is not necessarily the relay node that is closest to a user terminal of a group of user terminals to be network coded that provides the best performance. When network coding is introduced in a cell that includes more than one relay node, a relay selection scheme is needed that selects a relay node for network coding, where the selection scheme is not simply based on an individual user terminal without any consideration to other user terminals in the group of user terminals being network coded, since such a selection could detrimentally affect other user terminals in the group of user terminals.